/* -*- C++ -*- */
#ifndef __coll_IColStr_Header_File__
#define __coll_IColStr_Header_File__

#include "common.h"

namespace core
{

	namespace coll
	{

		/**
		 * Interface for wrappers around particular collision structer.
		 */
		class IColStr
		{
			public:
				/**
				 * Type of collision structer, that implemenetation of 
				 * this interface wrappes around.
				 */
				enum Type
				{
					AABBCStr,
					CylinderCStr
				};

				/**
				 * Gets type of Collision structure, that is wrapped.
				 *
				 * @return type of collsion structure.
				 */
				virtual Type getType() const =0;

				/**
				 * Gets pointer to data, describing current collision
				 * structure.
				 *
				 * @return pointer to collision data structre
				 */
				virtual const void* getData() const = 0;

				virtual ~IColStr(){}
		};
	}

}


#endif //__coll_IColStr_Header_File__
